/*****************************************************************************
 *   Copyright (C) 2008 John Schember <john@nachtimwald.com>                 *
 *                                                                           *
 *   This file is part of niwbillmanager.                                    *
 *                                                                           *
 *   niwbillmanager is free software: you can redistribute it and/or         *
 *   modify it under the terms of the GNU General Public License as          *
 *   published by the Free Software Foundation, either version 3 of the      *
 *   License, or (at your option) any later version.                         *
 *                                                                           *
 *   niwbillmanager is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
 *   GNU General Public License for more details.                            *
 *                                                                           *
 *   You should have received a copy of the GNU General Public License       *
 *   along with niwbillmanager. If not, see                                  *
 *   <http://www.gnu.org/licenses/>.                                         *
 *****************************************************************************/

#include <transaction.h>

QString TransactionType::transactionTypeToString(
    TransactionType::TransactionTypes transactionType)
{
    QString transaction = "";

    switch (transactionType)
    {
        case TransactionType::INSERT:
            transaction = "INSERT";
            break;
        case TransactionType::UPDATE:
            transaction = "UPDATE";
            break;
        case TransactionType::DELETE:
            transaction = "DELETE";
            break;
        default:
            transaction = "UNKNOWN";
            break;
    }

    return transaction;
}

TransactionType::TransactionTypes TransactionType::stringToTransactionType(
    QString transactionString)
{
    if (transactionString == "INSERT") {
        return TransactionType::INSERT;
    }
    else if (transactionString == "UPDATE") {
        return TransactionType::UPDATE;
    }
    else if (transactionString == "DELETE") {
        return TransactionType::DELETE;
    }
    else {
        return TransactionType::UNKNOWN;
    }
}

ShortTransaction::ShortTransaction()
{
    m_transactionType = TransactionType::UNKNOWN;
}

void ShortTransaction::setTransactionType(TransactionType::TransactionTypes
    transactionType)
{
    m_transactionType = transactionType;
}

TransactionType::TransactionTypes ShortTransaction::getTransactionType() const
{
    return m_transactionType;
}

void ShortTransaction::setBillId(QString billId)
{
    m_billId = billId;
}

QString ShortTransaction::getBillId()
{
    return m_billId;
}

Transaction::Transaction()
{
    m_transactionType = TransactionType::UNKNOWN;
    m_billItem = BillItem();
}

Transaction::Transaction(TransactionType::TransactionTypes transactionType,
    BillItem billItem)
{
    m_transactionType = transactionType;
    m_billItem = billItem;
}

void Transaction::setTransactionType(TransactionType::TransactionTypes
    transactionType)
{
    m_transactionType = transactionType;
}

TransactionType::TransactionTypes Transaction::getTransactionType() const
{
    return m_transactionType;
}

void Transaction::setBillItem(BillItem billItem)
{
    m_billItem = billItem;
}

BillItem Transaction::getBillItem() const
{
    return m_billItem;
}
